package cn.txm.user.service;

import cn.txm.basic.service.IBaseService;
import cn.txm.basic.util.AjaxResult;
import cn.txm.user.domain.User;
import cn.txm.user.domain.UserAddress;
import cn.txm.user.domain.dto.UserDto;

import javax.servlet.http.HttpSession;
import java.util.List;

public interface IUserService extends IBaseService<User>{
    /**
     * 验证手机号是否被注册
     * type phone_reg表示手机验证码注册，phone_login表示手机验证码登录
     */
    AjaxResult validatePhone(String type,String phone);


    /**
     * 发送手机短信
     * @param phone
     * @return
     */
    AjaxResult sendMobileCode(String type, String phone);

    /**
     * 前台用户注册，提交注册表单
     * @param userDto
     * @return
     */
    AjaxResult phoneReg(UserDto userDto);


    /**
     * 用户登录
     * @param userDto  type属性为front表示前台用户登录，admin表示后台用户登录
     * @return
     */
    AjaxResult userLogin(UserDto userDto);


    /**
     * 手机验证码登录
     * @param userDto
     * @return
     */
    AjaxResult phoneLogin(UserDto userDto);

    /**
     * 微信登录接口：获取code参数，利用Java程序发送Http请求获取access_token
     * @param code
     * @return
     */
    AjaxResult wechatLogin(String code);

    /**
     * 微信用户绑定：通过账户密码绑定
     * @return
     */
    AjaxResult userBindAccount(UserDto userDto);


    /**
     * 前台：根据用户id查询用户地址
     * @param user_id
     * @return
     */
    List<UserAddress> loadUserAddress(Long user_id);


}
